import axios from 'axios'
import { useUserInfoStore } from '../stores/userInfo'

const service = axios.create({
    baseURL:'/apiapp/',
    timeout:20000
})

//请求拦截器，报文头增加 token
service.interceptors.request.use((config)=>{
    const userInfoStore = useUserInfoStore()
    const token = userInfoStore.token

    //如果token存在，放入Http的请求报文头中 
    // key : token  value: 真实的字符串token
    if(token){
        (config.headers)['token'] = token
    }
    return config
})

//响应拦截器，获取后端的数据
service.interceptors.response.use(
    (response)=>{
        if(response.data.code !== 200){
            let message = '未知错误'
            switch(response.data.code){
                case 501:
                message = '用户名错误！';
                break;
                case 503:
                message = '用户密码错误！';
                break;
                case 504:
                message = '登录信息已过期！';
                break;
                case 505:
                message = '用户名已占用！';
                break;
            }
            //....
            return Promise.reject(new Error(message))
        }else{
            return response.data.data
        }
    },
    (error)=>{
        return Promise.reject(error.message)
    }
)

export default service